
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>什么是 DJL - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>什么是 DJL - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">什么是 DJL (Deep Java Library)，它旨在解决 Java 开发者的什么核心痛点？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">DJL 是一个专为 Java 开发者设计的开源深度学习库。它旨在解决 Java 开发者在接触 AI 和深度学习技术时面临的痛点，即无需切换到 Python 等其他语言，就能在熟悉的 Java 环境中轻松加载模型、进行推理甚至训练，从而降低学习曲线和技术栈分裂的风险。</div>
          </div>
          <div class="card-source">来源: DJL 的简介</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">DJL 的“多引擎支持”特性是什么意思？它为开发者带来了什么好处？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">“多引擎支持”意味着 DJL 本身不是一个深度学习引擎，而是一个适配多种引擎（如 PyTorch、TensorFlow、MXNet）的抽象层。其主要好处是，开发者可以在不更改代码的情况下切换底层引擎，从而可以根据具体场景选择性能或功能最合适的引擎。</div>
          </div>
          <div class="card-source">来源: DJL 的核心特性</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">DJL 是如何简化模型推理（Inference）过程的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">DJL 通过封装深度学习模型的预测过程来简化推理。它提供了简单的 API，尤其是 `Predictor` 类，让开发者只需关注输入和输出即可快速实现推理。此外，它还支持多线程，能够高效处理批量请求以满足高并发场景。</div>
          </div>
          <div class="card-source">来源: DJL 的核心功能 -> 2. 模型推理（Inference）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">架构</div>
          <div class="card-question">DJL 的架构主要由哪四个层次组成？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">架构</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">DJL 的架构主要由以下四个层次组成：<br>1. 高层 API 层：为用户提供简化的接口。<br>2. 核心模块层：负责模型加载、推理、数据预处理和训练等关键功能。<br>3. 引擎适配层：封装不同深度学习引擎，提供统一调用接口。<br>4. 运行时支持层：与底层硬件（CPU、GPU）交互。</div>
          </div>
          <div class="card-source">来源: DJL 的架构与模块 -> 1. 架构概览</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">架构</div>
          <div class="card-question">在 DJL 的架构中，“引擎适配模块”扮演了什么角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">架构</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">“引擎适配模块”的角色是封装主流的深度学习引擎（如 PyTorch、TensorFlow、ONNX Runtime），通过统一的 API 为开发者屏蔽底层差异，提供跨引擎的兼容性。这使得开发者可以无需修改代码就动态切换底层引擎。</div>
          </div>
          <div class="card-source">来源: DJL 的架构与模块 -> （5）引擎适配模块</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">优势</div>
          <div class="card-question">相比于主流的 Python 深度学习框架，DJL 为企业级 Java 应用带来了哪些优势？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">优势</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">DJL 的主要优势在于其 Java 原生支持，能够与 JVM 和企业级框架（如 Spring Boot）无缝集成，避免了技术栈分裂和额外的维护成本。它允许企业在现有的 Java 系统中直接整合 AI 功能，提升开发效率。</div>
          </div>
          <div class="card-source">来源: DJL 的优势 -> 1. Java 原生支持</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">DJL 在工业自动化和边缘计算领域有哪些典型的应用场景？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">由于 DJL 的轻量化设计，它适合部署在资源受限的边缘设备上。典型应用场景包括：在智能工厂中实时监控生产线；为无人机提供目标检测与路径规划能力；在 IoT 设备（如智能家居）上实现语音识别和人脸检测等实时 AI 推理。</div>
          </div>
          <div class="card-source">来源: DJL 的使用场景 -> 5. 工业自动化与边缘计算</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">局限性</div>
          <div class="card-question">DJL 在社区和资源支持方面存在什么局限性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">局限性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">DJL 是一个相对较新的框架，其社区规模和资源相比 TensorFlow、PyTorch 等成熟框架要小。这可能导致在支持最新的深度学习研究成果方面存在滞后，并且初学者可能会发现相关的教程、示例代码和问题解决方案较少。</div>
          </div>
          <div class="card-source">来源: DJL 的局限性 -> 1. 相对较少的社区和资源支持</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">局限性</div>
          <div class="card-question">在处理大规模训练任务时，DJL 可能面临哪些性能挑战？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">局限性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">在大规模训练任务上，DJL 的性能可能不如原生使用 PyTorch 或 TensorFlow。具体挑战包括：对于非常大的数据集和复杂模型，训练效率和资源消耗可能更高；其对分布式训练或大规模 GPU 集群环境的支持较为有限。</div>
          </div>
          <div class="card-source">来源: DJL 的局限性 -> 3. 性能问题，尤其在大规模训练上</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
